package com.itheima.dao;

import com.github.pagehelper.Page;
import com.itheima.pojo.CheckItem;
import org.apache.ibatis.annotations.*;

import java.util.List;

@Mapper
public interface CheckItemMapper {
    /**
     * 添加检查项
     * @param checkItem
     */
    @Insert("insert into itcast_health.t_checkitem (code, name, sex, age,  price, type, remark, attention) values " +
            "(#{code},#{name},#{sex},#{age},#{price},#{type},#{remark},#{attention})")
    void addCheckItem(CheckItem checkItem);

    /**
     * 根据id删除检查项
     * @param id
     */
    @Delete("delete from itcast_health.t_checkitem where id = #{id}")
    void deleteBooking(Integer id);

    /**
     * 更新检查项
     * @param checkItem
     */
    void updateBooking(CheckItem checkItem);

    /**
     * 根据条件查询检查项
     * @param queryString
     * @return
     */

    /**
     * 查询所有检查项
     * @return
     */
    List<CheckItem> getAllBooking();

    /**
     * 根据id查询检查项
     * @param id
     * @return
     */
    CheckItem getBookingById(Integer id);

    /**
     * 分页查询
     * @param queryString
     * @return
     */
    Page<CheckItem> findPage(String queryString);

    /**
     * 根据检查组id查询检查项id
     * @return
     */
    List<Integer> findCheckItemIdsByCheckGroupId(Integer checkGroupId);

    // 查询与指定 checkitem_id 相关的 checkgroup_id 列表
    @Select("SELECT checkgroup_id FROM itcast_health.t_checkgroup_checkitem WHERE checkitem_id = #{checkItemId}")
    List<Integer> findRelatedCheckGroups(@Param("checkItemId") Integer checkItemId);

    // 删除 t_checkgroup_checkitem 表中指定的外键引用
    @Delete("DELETE FROM itcast_health.t_checkgroup_checkitem WHERE checkgroup_id = #{checkGroupId} AND checkitem_id = #{checkItemId}")
    void deleteCheckGroupCheckItem(@Param("checkGroupId") Integer checkGroupId, @Param("checkItemId") Integer checkItemId);

}
